6e49ae971b49993d387af57645c068e5f677e946,sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginJarsInstaller.java,ServerPluginJarsInstaller,registerPlugin,#File#boolean#boolean#,92
Before Change
}
if (existing != null) {
FileUtils.deleteQuietly(existing.getFile());
LOG.info("Plugin " + metadata.getKey() + " replaced by new version");
}
}
After Change
private void overridePlugin(File sourceFile, boolean deleteSource) {
File destDir = fs.getUserPluginsDir();
File destFile = new File(destDir, sourceFile.getName());
if (destFile.exists()) {
// plugin with same filename already installed
FileUtils.deleteQuietly(destFile);
}
try {
if (deleteSource) {
FileUtils.moveFile(sourceFile, destFile);
} else {
FileUtils.copyFile(sourceFile, destFile);
}
} catch (IOException e) {
LOG.error(String.format("Fail to move or copy plugin: %s to %s",
sourceFile.getAbsolutePath(), destFile.getAbsolutePath()), e);
}
DefaultPluginMetadata metadata = installer.extractMetadata(destFile, false);
if (StringUtils.isNotBlank(metadata.getKey())) {
PluginMetadata existing = pluginByKeys.put(metadata.getKey(), metadata);
if (existing != null) {
if (!existing.getFile().getName().equals(destFile.getName())) {
FileUtils.deleteQuietly(existing.getFile());
}
LOG.info("Plugin " + metadata.getKey() + " replaced by new version");
}